"""
stu_manager.py 学员管理模块，用于对学员对象进行增删改查之类的操作
模块中定义类StudentManager
类中的函数包括：内置函数和自定义函数
  内置函数：__init__().__str__()
  自定义函数：根据具体需求，增删改查等功能
"""
from student_manager_obj.student import Student


class StudentManager:
    def __init__(self):
        # 学员对象保存在列表中
        self.stu_list=[]

    """
            循环操作：
              显示功能界面
              用户输入
              根据用户输入，进入不同的功能
            :return:
            """

    # 自定义函数，程序入口

    def run(self):

        while True:
            # 调用显示功能界面菜单函数
            self.menu()
            # 让输入输入选择
            num=input('请输入您需要的功能编号:')
            # 根据用户输入进入不同功能函数
            if num == '1':
                # 调用添加函数
                self.add_stu()
            elif num == '2':
                self.del_stu()
            elif num == '3':
                self.modify_stu()
            elif num == '4':
                self.search_stu()
            elif num == '5':
                self.show()
            elif num == '6':
                # 将学员信息保存到文件
                self.save_stu()
            elif num == '7':
                break
            else:
                print('输入有误！')
    def menu(self):
        print('-'*20)
        print('请选择功能菜单：')
        print('1:添加学员')
        print('2:删除学员')
        print('3:修改学员')
        print('4:搜索学员')
        print('5:显示所有学员')
        print('6:保存学员信息')
        print('7:退出系统')
        print('-' * 20)

    def add_stu(self):
        print('----------添加功能------------')
        name=input('请输入学员姓名：')
        gender=input('请输入学员性别：')
        tel=input('请输入学员电话：')
        # 将其封装到对象中，再将对象添加到列表中
        # 构造对象
        stu=Student(name,gender,tel)
        self.stu_list.append(stu)
        print('添加成功')
    def del_stu(self):
        delname=input('请输入要删除的学员姓名')
        for item in self.stu_list:
            if item.name==delname:
                self.stu_list.remove(item)
                print('删除成功')
            else:
                print('删除失败')
    def modify_stu(self):
        pass

    def search_stu(self):
        pass

    def show(self):
        pass

    def save_stu(self):

        with open('data.txt','w') as f:
            # 学员信息保存在列表中，列表中每个元素都是一个学员对象
            new_list=[e.__dict__ for e in self.stu_list]
            f.write(str(new_list))

